package com.ttg.pojo;

//~--- non-JDK imports --------------------------------------------------------

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ttg.utils.DateUtil;

import java.io.Serializable;
import java.util.Date;

//~--- JDK imports ------------------------------------------------------------

//~--- classes ----------------------------------------------------------------

/**
 * Class PaymentRespDTO
 * Description 网关支付支付异步响应实体
 * Create 2016-07-15 09:43:02
 * @author Ardy
 */
public class PaymentRespDTO extends GwBasicRespParameters implements Serializable {

    /**
     * Field merchantId
     * Description
     */
    private String merchantId;

    /**
     * Field merOrderId
     * Description 商户交易订单号
     */
    private String merOrderId;

    /**
     * Field payAccount
     * Description 支付账号
     */
    private String payAccount;

    /**
     * Field orderCreateTime
     * Description 订单创建时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date orderCreateTime;

    /**
     * Field orderCompleteTime
     * Description 订单完成时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date orderCompleteTime;

    /**
     * Field payStatus
     * Description 支付状态
     */
    private String payStatus;

    /**
     * Field transAmt
     * Description 交易金额
     */
    private Integer transAmt;

    /**
     * Field signatureAlgorithm
     * Description 加密方式，固定为RSA
     */
    private String signatureAlgorithm;

    /**
     * Field signatureInfo
     * Description 加签字符串
     */
    private String signatureInfo;

    /**
     * Field attach
     * Description 商户私有参数
     */
    private String attach;

    public String getAttach() {
        return attach;
    }

    public void setAttach(String attach) {
        this.attach = attach;
        this.allParameters.put("attach",attach);
    }

    /**
     * Method getMerchantId
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public String getMerchantId() {
        return merchantId;
    }

    /**
     * Method setMerchantId
     * Description 说明：
     *
     * @param merchantId 说明：
     */
    public void setMerchantId(String merchantId) {
        this.merchantId = merchantId;
        this.allParameters.put("merchantId", merchantId);
    }

    /**
     * Method getMerOrderId
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public String getMerOrderId() {
        return merOrderId;
    }

    /**
     * Method setMerOrderId
     * Description 说明：
     *
     * @param merOrderId 说明：
     */
    public void setMerOrderId(String merOrderId) {
        this.merOrderId = merOrderId;
        this.allParameters.put("merOrderId", merOrderId);
    }

    /**
     * Method getPayAccount
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public String getPayAccount() {
        return payAccount;
    }

    /**
     * Method setPayAccount
     * Description 说明：
     *
     * @param payAccount 说明：
     */
    public void setPayAccount(String payAccount) {
        this.payAccount = payAccount;
        this.allParameters.put("payAccount", payAccount);
    }

    /**
     * Method getOrderCreateTime
     * Description 说明：
     *
     * @return 返回值说明：
     */
    @JsonFormat(
        pattern  = "yyyy-MM-dd HH:mm:ss",
        timezone = "GMT+8"
    )
    public Date getOrderCreateTime() {
        return orderCreateTime;
    }

    /**
     * Method setOrderCreateTime
     * Description 说明：
     *
     * @param orderCreateTime 说明：
     */
    public void setOrderCreateTime(Date orderCreateTime) {
        this.orderCreateTime = orderCreateTime;
        this.allParameters.put("orderCreateTime", DateUtil.date2Str(orderCreateTime));
    }

    /**
     * Method getOrderCompleteTime
     * Description 说明：
     *
     * @return 返回值说明：
     */
    @JsonFormat(
        pattern  = "yyyy-MM-dd HH:mm:ss",
        timezone = "GMT+8"
    )
    public Date getOrderCompleteTime() {
        return orderCompleteTime;
    }

    /**
     * Method setOrderCompleteTime
     * Description 说明：
     *
     * @param orderCompleteTime 说明：
     */
    public void setOrderCompleteTime(Date orderCompleteTime) {
        this.orderCompleteTime = orderCompleteTime;
        this.allParameters.put("orderCompleteTime", DateUtil.date2Str(orderCompleteTime));
    }

    /**
     * Method getPayStatus
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public String getPayStatus() {
        return payStatus;
    }

    /**
     * Method setPayStatus
     * Description 说明：
     *
     * @param payStatus 说明：
     */
    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
        this.allParameters.put("payStatus", payStatus);
    }

    /**
     * Method getTransAmt
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public Integer getTransAmt() {
        return transAmt;
    }

    /**
     * Method setTransAmt
     * Description 说明：
     *
     * @param transAmt 说明：
     */
    public void setTransAmt(Integer transAmt) {
        this.transAmt = transAmt;
        this.allParameters.put("transAmt", String.valueOf(transAmt));
    }

    /**
     * Method getSignatureAlgorithm
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public String getSignatureAlgorithm() {
        return signatureAlgorithm;
    }

    /**
     * Method setSignatureAlgorithm
     * Description 说明：
     *
     * @param signatureAlgorithm 说明：
     */
    public void setSignatureAlgorithm(String signatureAlgorithm) {
        this.signatureAlgorithm = signatureAlgorithm;
        this.allParameters.put("signatureAlgorithm", signatureAlgorithm);
    }

    /**
     * Method getSignatureInfo
     * Description 说明：
     *
     * @return 返回值说明：
     */
    public String getSignatureInfo() {
        return signatureInfo;
    }

    /**
     * Method setSignatureInfo
     * Description 说明：
     *
     * @param signatureInfo 说明：
     */
    public void setSignatureInfo(String signatureInfo) {
        this.signatureInfo = signatureInfo;
        this.allParameters.put("signatureInfo", signatureInfo);
    }

    /**
     * Method toString
     * Description 说明：
     *
     * @return 返回值说明：
     */
    @Override
    public String toString() {
        return "PaymentRespDTO{" + "merchantId='" + merchantId + '\'' + ", merOrderId='" + merOrderId + '\''
               + ", payAccount='" + payAccount + '\'' + ", orderCreateTime=" + orderCreateTime + ", orderCompleteTime="
               + orderCompleteTime + ", payStatus='" + payStatus + '\'' + ", transAmt=" + transAmt
               + ", signatureAlgorithm='" + signatureAlgorithm + '\'' + ", signatureInfo='" + signatureInfo + '\''
               + "} " + super.toString();
    }
}


//~ Formatted by Jindent --- http://www.jindent.com
